// Decompiled on 周六 2月 22 19:31:49 CST 2025 with Zomboid Decompiler v0.1.3 using Vineflower.
package zombie.ai;

import zombie.ai.permission.DefaultStatePermissions;
import zombie.ai.permission.IStatePermissions;
import zombie.characters.IsoGameCharacter;
import zombie.characters.MoveDeltaModifiers;
import zombie.core.skinnedmodel.advancedanimation.AnimEvent;

public abstract class State {
    public void enter(IsoGameCharacter owner) {
    }

    public void execute(IsoGameCharacter owner) {
    }

    public void exit(IsoGameCharacter owner) {
    }

    public void animEvent(IsoGameCharacter owner, AnimEvent event) {
    }

    public boolean isAttacking(IsoGameCharacter owner) {
        return false;
    }

    public boolean isMoving(IsoGameCharacter owner) {
        return false;
    }

    public boolean isDoingActionThatCanBeCancelled() {
        return false;
    }

    public void getDeltaModifiers(IsoGameCharacter owner, MoveDeltaModifiers modifiers) {
    }

    public boolean isIgnoreCollide(IsoGameCharacter owner, int fromX, int fromY, int fromZ, int toX, int toY, int toZ) {
        return false;
    }

    public String getName() {
        return this.getClass().getSimpleName();
    }

    public IStatePermissions getStatePermissions() {
        return DefaultStatePermissions.Instance;
    }
}
